﻿using System.ServiceModel;
using Hopscotch.Domain.Common;

namespace Hopscotch.Common.Contracts.AppService
{
	[ServiceContract]
	public interface IDomainService<T, TKey>
		where T : DomainBase<TKey>
		where TKey : struct
	{
		[OperationContract]
		string Ping();

		[OperationContract]
		T Get(TKey id);

		[OperationContract]
		T Save(T t);

		[OperationContract]
		void Delete(T t);
	}
}
